
import axios from 'axios'
const all_ajax_set = new Set();
var Rxports = {
	/**
	  * 封装axios，减少学习成本，参数基本跟jq ajax一致
	  * @param {String} type			请求的类型，默认post
	  * @param {String} url				请求地址
	  * @param {String} time			超时时间
	  * @param {Object} data			请求参数
	  * @param {String} dataType		预期服务器返回的数据类型，xml html json ...
	  * @param {Object} headers			自定义请求headers
	  * @param {Function} success		请求成功后，这里会有两个参数,服务器返回数据，返回状态，[data, res]
	  * @param {Function} error		发送请求前
	  * @param return 
	*/
	ajax:function (opt){
		var that = this
		var opts = opt || {};
		if (!opts.url) {
			alert('请填写接口地址');
			return false;
        }
        const JSON_opts = JSON.stringify(opts);
        if(all_ajax_set.has(JSON_opts)){
            return false;
        }
        all_ajax_set.add(JSON_opts);
		axios({
			method: opts.type || 'POST',
			url: opts.url,
			params: opts.data || {},
			header: opts.header || {
				'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8'
			},
			// `baseURL` 将自动加在 `url` 前面，除非 `url` 是一个绝对 URL。
			baseURL: '',
			timeout: opts.time || 10000,
			responseType: opts.dataType || 'json'
		}).then(function(res){
			if(res.status == 200 ){
				if(res.data.code == 0){
					if(opts.success){
						opts.success(res.data,res);
					}
				}
				if(res.data.code == 1){
					if(opts.error){
						opts.error(res.data,res);
					}	
				}
				if(res.data.code > 1){
					if(opts.warning){
						opts.warning(res.data,res);
					}
				}
			}else{
				if (data.error) {
					opts.error(error);
				}
            }
            all_ajax_set.delete(JSON_opts);
		}).catch(function (error){
            all_ajax_set.delete(JSON_opts);
			return false
		});
				
	},
	//时间戳转换
	formatTime: function(date) {
		var date=new Date(date);
		var year = date.getFullYear()
		var month = date.getMonth() + 1
		var day = date.getDate()
	  
		var hour = date.getHours()
		var minute = date.getMinutes()
		var second = date.getSeconds()
	  
	  
		return [year, month, day].map(this.formatNumber).join('-') + ' ' + [hour, minute, second].map(this.formatNumber).join(':')
	},
	

	//数字加0转换
	formatNumber: function(n){
		n = n.toString()
		return n[1] ? n : '0' + n
	},
    //手机号码验证
    checkPhone: function(phone) {
        if((/^1[3456789]\d{9}$/.test(phone))) {
            return true;
        } else {
            return false;
        }
    },
	
	/**
	 * 深复制
	 * @param src
	 * @returns {{}}
	 */
	copy(obj) {
		var dst = obj.constructor === Array ? [] : {};
		for (var prop in obj) {
		if (obj.hasOwnProperty(prop)) {
			if(typeof obj[prop] == 'object'){
			dst[prop] = this.copy(obj[prop])
			}else{
			dst[prop] = obj[prop];
			}
		}
		}
		return dst;
	},  

	
};

export default Rxports;


































